Genesis 3D

 

per collaborazioni, commenti, critiche, e altro contattateci alla e-mail: clubinfo@libero.it risponderemo al pių presto!

Corso sull'engine 3D di Genesis

Nona lezione

di Luca Sabatucci

Per commentare, dare suggerimenti o consigli (molto apprezzati) e per segnalare eventuali errori o
disattenzioni (sempre possibili), puoi inviare una email all'autore (clicca sul nome sopra). Grazie per la collaborazione!


Tecniche di animazione

Discutiamo in questo tutorial alcuni metodi per il controllo dell'animazione:

  1. Controllo esplicito e controllo procedurale
  2. Attori
  3. Cinematica diretta e inversa
  4. Il Track Editor

Controllo esplicito e controllo procedurale

Il controllo esplicito è il metodo più diretto per creare una animazione. L'animatore ha il controllo totale di ciò che succede nella scena. Deve occuparsi di specificare tutte le trasformazioni di traslazione, rotazione e scala, deve occuparsi di creare i keyframe e di calcolare i tempi corretti e specificare il tipo di interpolazione che si vuole usare tra due keyframe.
Si tratta del tipo di controllo dell'animazione base di tutti i sistemi e può diventare ingestibile all'aumentare della complessità dell'animazione stessa. La maggiore difficoltà sta infatti nel valutare l'animazione di più oggetti che interagiscono. Si pensi all'animazione di una figura umana. Quando un uomo solleva un braccio, tale movimento non è unico, ma è la collaborazione di una serie di sotto-movimenti (spalla, braccio, avambraccio, mano, dita).

3D studio MAX offre degli strumenti per agevolare il lavoro nel caso si decida di lavorare a questo livello di animazione. Infatti è possibile definire dei percorsi spline per gli oggetti, i quali durante l'animazione ne seguono l'andamento.
Genesis permette di importare da MAX tali percorsi e di utilizzarli all'interno dell'engine.

Il controllo procedurale è analogo al modello procedurale. Si tratta di un'animazione definita mediante un vero e proprio sottoprogramma; quando si deve definire la matrice di trasformazione corrente per un oggetto si interpella tale sottoprogramma che effettua i calcoli per determinarla. Con questa tecnica si può realmente gestire qualunque tipo di animazione, ma il problema principale è che l'animatore deve essere anche un discreto programmatore.
Il controllo procedurale è sostanzialmente quello che si ha quando si muove interattivamente una telecamera in un ambiente. E' l'utente, mediante la tastiera e il mouse a determinare la successiva posizione della telecamera.

Naturalmente questo non è l'unico caso MAX offre tale possibilità (animazione con espressioni) e permette di ottenere effetti di incredibile realismo all'animazione. Ed esempio per una macchina che si muove lungo un percorso è possibile calcolare l'esatta velocità di rotazione delle gomme e il controllo della rotazione delle stesse in corrispondenza alle curve. Il bello è che al variare del percorso l'animazione non dovrà essere modificata dall'utente, ma si adatterà automaticamente al cambiamento.

Attori

L'uso degli attori rappresenta un approccio ad alto livello del tipo di controllo procedurale. L'attore è un piccolo programma invocato ad ogni frame per determinare il comportamento di una serie di oggetti nell'animazione. L'accostamento tra attore e oggetto, nel senso della programmazione OO non è casuale, infatti un actor gestisce "da solo" la propria animazione secondo il copione prestabilito.

Genesis fa un grande uso di actors. Queste entità sono state introdotte principalmente per fornire uno strumento di animazione complesso adatto, ad esempio, all'animazione di personaggi.
Genesis offre due approcci all'uso degli actor. Il controllo diretto e il copione (cuing). Il primo metodo consiste nel gestire in modo diretto il controllo dello scheletro dell'actor. Il secondo metodo permette di gestire l'animazione come "predefinita" mediante un copione. E' un metodo per ottenere risultati di notevole impatto, infatti mediante strumenti ad altissimo livello si studiano le animazioni relative delle singole parti, fino ad ottenere il risultato desiderato e poi si chiede all'actor stesso di gestire la propria animazione, fornendo solo un parametro temporale come ingresso.

I due tipi di animazione possono comunque essere combinati molto semplicemente. E' il caso dei movimenti come "cammina". Per ricreare l'animazione di camminata di un personaggio si procede come segue:

  1. mediante uno strumento come MAX si definisce il singolo passo come movimento coordinato di tutte le ossa delle gambe e delle braccia. Il personaggio, tuttavia non effettua nessuna traslazione: il passo viene eseguito "da fermo";
  2. si esegue il movimento "cammina" come previsto nel copione;
  3. se esegue il controllo diretto della traslazione dell'intero actor nello spazio X,Y,Z di una quantità tale da ricreare l'effetto del passo.

Si può notare come l'uso di actor permette in modo piuttosto semplice di creare animazioni di grande impatto.

Cinematica diretta e inversa

Cinematica è un termine usato per indicare il controllo della posizione e della velocità dei punti. Una descrizione cinematica ad esempio potrebbe essere: il cubo si trova nell'origine al tempo 0 e si muove con accelerazione costante nella direzione (1,1,1).

Abbiamo visto come fa genesis a gestire animazioni complesse, ma come vengono implementate?

Una regola della cinematica è che quando gli oggetti sono organizzati in gerarchie, gli oggetti derivati condividono le trasformazioni degli oggetti principali. Nell'animazione del passo, quando si alza la coscia, anche polpaccio e piede vengono sollevati per simulare il fatto che essi sono vincolati da delle giunture.
Se invece si ruota il piede, la gamba non risentirà di tale trasformazione. Per animare un passo quindi si devono effettuare le trasformazioni dall'inizio della catena verso la fine: prima si solleva la coscia, quindi si abbassa il polpaccio e infine si regola anche il piede.

Questo tipo di controllo dell'animazione viene chiamato cinematica diretta. Un altro genere di controllo è quello della cinematica inversa. Si tratta di una caratteristica estremamente utile per l'animazione di movimenti complessi. Facendo riferimento all'esempio precedente, sollevando il piede la cinematica inversa calcola anche le trasformazioni da applicare a polpaccio e coscia in modo da mantenere invariate le giunture.

3D Studio MAX offre un grande controllo sulla cinematica inversa. Esistono tre categorie di cinematica inversa: quella interattiva, quella applicata e quella mediante ossatura. E' possibile definire nodi di terminazione, i quali indicano a MAX di interrompere la propagazione del movimento generato al di sotto nella catena. Ad esempio muovendo la coscia è opportuno che l'anca non si muova di conseguenza.

__ __

In questo esempio muovendo soltanto la giunzione relativa al polpaccio si vede come anche la coscia e il piede si muovono di conseguenza per mantenere invariate le proporzioni tra le varie parti.

E' possibile impostare dei parametri per i giunti di rotazione, ad esempio per imporre dei vincoli: nell'animazione del passo il piegamento della gamba deve avvenire in modo da non piegare il ginocchio dalla parte sbagliata.

Track Editor

Uno strumento molto potente per gestire le animazioni, qualunque genere di controllo si stia utilizzando è l'editor delle tracce; tale strumento è fornito da 3d Studio MAX e rappresenta il metodo più professionale di lavorare con le animazioni.

Il track editor permette di lavorare con le curve funzione, concetto di fondamentale importanza per l'animatore 3D. Una curva funzione descrive il modo in cui un parametro si modifica nel tempo (sia esso una posizione, una rotazione, un colore, l'intensità di una luce, ecc...)
L'editor delle tracce consente di intendere l'animazione come una continua modifica e non come un semplice collegamento di pose ferme. Le chiavi (punti neri) vengono unicamente usate per creare e modificare la curva.

Lavorando con le curve funzione è più facile gestire elementi come velocità e accelerazione del movimento di un punto.


Questo articolo č stato scaricato dal Club di informatica
Pagina curata da:
Luca Sabatucci